{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = 'all'\n",
    "\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import pickle\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "import detection_eval_utils as utils"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Evaluate MegaDetector v2 and v3 on the v3 validation set\n",
    "\n",
    "This validation set is not the perfect measure of performance for either version, since there are some images in there that are in the training set of MDv2, and that MDv3's checkpoint was selected based on results on ~10% of this validation set.\n",
    "\n",
    "This validation set is relatively noise-less however, since they were bounding box labeled by iMerit."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "# using results that exclude the 'person' category, since this is newly added in v3\n",
    "\n",
    "with open('/Users/siyuyang/Source/temp_data/CameraTrap/megadetectorv3/no_human_images/v2_on_val_v3/per_category_metrics.p', 'rb') as f:\n",
    "    v2_results = pickle.load(f)\n",
    "    \n",
    "with open('/Users/siyuyang/Source/temp_data/CameraTrap/megadetectorv3/no_human_images/v3/per_category_metrics.p', 'rb') as f:\n",
    "    v3_results = pickle.load(f)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "v2_animal = v2_results[0][1]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'average_precision': 0.8301842585885212,\n",
       " 'category': 1,\n",
       " 'num_gt': 19562,\n",
       " 'precision': array([1.        , 1.        , 1.        , ..., 0.01208208, 0.01208207,\n",
       "        0.01208206]),\n",
       " 'recall': array([5.11195174e-05, 1.02239035e-04, 1.53358552e-04, ...,\n",
       "        9.03435232e-01, 9.03435232e-01, 9.03435232e-01]),\n",
       " 'scores': array([9.99992728e-01, 1.71653973e-03, 4.61522082e-04, ...,\n",
       "        1.67497019e-05, 1.62780798e-05, 1.61811004e-05]),\n",
       " 'tp_fp': array([ True, False, False, ..., False, False, False])}"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v2_animal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.028376270050028365"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v2_recall_at_90_prec = utils.find_precision_at_recall(v2_animal['precision'], v2_animal['recall'], recall_level=0.9)\n",
    "v2_recall_at_90_prec"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'average_precision': 0.8978631413464984,\n",
       " 'category': 1,\n",
       " 'num_gt': 19562,\n",
       " 'precision': array([1.        , 1.        , 1.        , ..., 0.01421641, 0.0142164 ,\n",
       "        0.01421639]),\n",
       " 'recall': array([5.11195174e-05, 1.02239035e-04, 1.53358552e-04, ...,\n",
       "        9.47244658e-01, 9.47244658e-01, 9.47244658e-01]),\n",
       " 'scores': array([9.78884995e-01, 7.63085961e-01, 3.37921143e-01, ...,\n",
       "        2.64870578e-05, 2.57388328e-05, 2.35880652e-05]),\n",
       " 'tp_fp': array([False, False,  True, ..., False, False, False])}"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v3_animal = v3_results[0][1]\n",
    "v3_animal"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.5890067244321033"
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "v3_recall_at_90_prec = utils.find_precision_at_recall(v3_animal['precision'], v3_animal['recall'], recall_level=0.9)\n",
    "v3_recall_at_90_prec"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "8.152272469372615"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# percentage gain in AP\n",
    "100 * (v3_animal['average_precision'] - v2_animal['average_precision']) / v2_animal['average_precision']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1975.7017162356562"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# percentage gain in precision at 90% recall\n",
    "100 * (v3_recall_at_90_prec - v2_recall_at_90_prec)/v2_recall_at_90_prec"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Plot precision-recall for the `animal` category on one graph"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 750x750 with 0 Axes>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x10448abe0>]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "[<matplotlib.lines.Line2D at 0x104467278>]"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5,0,'Recall')"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "Text(0,0.5,'Precision')"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "(0, 1.05)"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "(0, 1.05)"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "Text(0.5,1,'MegaDetector v2 and v3 precision-recall \\non v3 validation set')"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x10447f4e0>"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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ft3111+v66+/Xl1dXdq8ebO++93v6ktf+pLuu+8+PfDAA5o4kf9JAAAGVlNZHmn/4oXtuS9oayZE293tFLTDwJQDFI3+O7D9d2QladWqVdqwYYMuvPBCzZqVeb2+qqoqHX/88brtttv0la98RU899ZRuvvnmnOcMAChu584P75j+5tU9uR8wfXew3jxMc4gBCloUjauvvloVFRW6++671deX2LWlf07tQNMNMrn++uslSffee2/2kwQAYCzMpLKUL9B7Ov3lUkSYclBsaiYkvr4vNulfoYzClClT9K53vUsPPPCAHn30UV144YX60Y9+pOrqaq1YsWLY15k0aZLKysq0d+/eMecEAIi3T1+0SE9+qyXZ3tPaoebxNYP8iixI3f62gwfDhoOCttiYjWkuarG77rrr9MADD2jlypXq6enR7t27ddVVV6mxcfi/J48//rj6+vq0YMGCHGYKAIiDc+Y3RdrPbj6gS06anr8EysqH7gOmHKC4XHnllaqrq9NPfvITffvb35Y08HSDW265Rbt27Trm/WeffVYf//jHJUk33HBDbpMFAMTC/Cl1yfi36/Iwj3bc5DB2LvfjxQB3aFFU6urqdMUVV2jlypW6++67NWHCBF166aXH9Lv11lv15S9/WcuXL9e8efPU1dWlTZs26YUXXpAkffCDH9SnP/3pfKcPAChCo190cpRS78r29eZ79KLEHVoUndQ7sitWrFB1dfUxfb7xjW/osssu0969e3Xffffp/vvv1969e3XFFVfoZz/7mX74wx+qooJ/zwEAhnbq7HDZrHue25b7AS2loHUUtMPB3+goOpdcconcEF/BfPKTn9QnP/nJPGUEAIizyvI836PlDu2IcYcWAABgEJelbaZwtKsnQ88ssZTyzPXldqyYoKAFAAAYxLlpKx08sPbYh46zKrWg7TqS27FigoIWAABgEGVl0SkHT2/an9sBj6Zcv511aIeDghYAAGAIFywKl9L64bNbcztY56Ewrh6f27FigoIWAABgCOkbLAz1cPKYzFgexn05nq8bExS0AAAAQ/jA6bMi7fW7czi3tSxlESpWORgWCloAAIAhTG2oibR//sL23A0WKWi5QzscFLQAAAAjtPKpLbm7eOo6tDuez904MUJBW2DMwicp+/pYe8631M8g9bMBAJSe8xeGD4ZVlOXw74TNj4dx04LcjRMj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\n",
      "text/plain": [
       "<Figure size 750x750 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(5, 5), dpi=150)\n",
    "\n",
    "plt.plot(v2_animal['recall'], v2_animal['precision'], label='v2')\n",
    "plt.plot(v3_animal['recall'], v3_animal['precision'], label='v3')\n",
    "\n",
    "plt.xlabel('Recall')\n",
    "plt.ylabel('Precision')     \n",
    "plt.xlim([0, 1.05])\n",
    "plt.ylim([0, 1.05])\n",
    "plt.title('MegaDetector v2 and v3 precision-recall \\non v3 validation set')\n",
    "plt.axes().set_aspect('equal')\n",
    "plt.legend(loc='lower left')\n",
    "plt.tight_layout()\n",
    "plt.savefig('/Users/siyuyang/Source/temp_data/CameraTrap/megadetectorv3/no_human_images/v2_v3_animal.png')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### TP at 90% confidence and 0.5 IoU"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "1462747"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "1303425"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(v2_animal['tp_fp'])\n",
    "len(v3_animal['tp_fp'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {
    "collapsed": false
   },
   "outputs": [],
   "source": [
    "conf_threshold = 0.9\n",
    "\n",
    "tp_fp_confident = [[], []]\n",
    "\n",
    "for i_version, version in enumerate((v2_animal, v3_animal)):\n",
    "    for s, tf in zip(version['scores'], version['tp_fp']):\n",
    "        if s > 0.9:\n",
    "            tp_fp_confident[i_version].append(tf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "17087"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "16738"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(tp_fp_confident[0])\n",
    "len(tp_fp_confident[1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {
    "collapsed": false
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "0.7850424291994683"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "text/plain": [
       "0.8143339126878643"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "total_gt = 19562\n",
    "\n",
    "v2_tp = sum(tp_fp_confident[0]) / total_gt\n",
    "v3_tp = sum(tp_fp_confident[1]) / total_gt\n",
    "\n",
    "v2_tp\n",
    "v3_tp"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Need to be able to record down false negatives."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python [tensorflow]",
   "language": "python",
   "name": "Python [tensorflow]"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 0
}
